using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Thaire.Investment.Domains.Transaction
{
   
    public class DepositHeader 
    {
        #region Properties
              // DEPOSIT_HEADER_ID
        public virtual int DepositHeaderID { set; get; }
      // DEPOSIT_COMPANY_NAME
        public virtual String DepositCompanyName { set; get; }
      // DEPOSIT_COMPANY_ID
        public virtual int? DepositCompanyID { set; get; }
      // MATURITY_STATUS
        public virtual String MaturityStatus { set; get; }
      // DEPOSIT_TYPE_ID
        public virtual int? AssetClassID { set; get; }
      // ACCOUNT_VOUCHER_NO
        public virtual String AccountVoucherNO { set; get; }
      // TERM
        public virtual String Term { set; get; }
      // FINANCIAL_INSTRUMENT_TYPE_ID
        public virtual int? FinancialInstrumentTypeID { set; get; }
      // BANK_NAME
        public virtual String BankName { set; get; }
      // BRANCH_NAME
        public virtual String BranchName { set; get; }
      // BANK_CODE
        public virtual String BankCode { set; get; }
      // BRANCH_CODE
        public virtual String BranchCode { set; get; }
      // SYMBOL
        public virtual String Symbol { set; get; }
      // MATURITY_DATE
        public virtual DateTime? MaturityDate { set; get; }
      // INTEREST_PAYMENT_DATE
        public virtual DateTime? InterestPaymentDate { set; get; }
      // INTEREST_RATE
        public virtual decimal? InterestRate { set; get; }
      // RISK_LEVEL
        public virtual String RiskLevel { set; get; }
      // LIQUIDITY_TIER_I_PERCENT
        public virtual int? LiquidityTierIPercent { set; get; }
      // LIQUIDITY_TIER_II_PERCENT
        public virtual int? LiquidityTierIIPercent { set; get; }
      // LIQUIDITY_LOW_LIQUIDITY_PERCENT
        public virtual int? LiquidityLowLiquidityPercent { set; get; }
      // INVOLVED_PARTY_TYPE_NAME
        public virtual String InvolvedPartyTypeName { set; get; }
      // CREATE_DATE
        public virtual DateTime? CreateDate { set; get; }
      // CREATE_BY
        public virtual String CreateBY { set; get; }
      // MODIFY_DATE
        public virtual DateTime? ModifyDate { set; get; }
      // MODIFY_BY
        public virtual String ModifyBY { set; get; }
      // GUARANTOR
        public virtual String Guarantor { set; get; }
      // RELATED_ID
        public virtual int? RelatedID { set; get; }
      // REMAIN_UNIT
        public virtual int? RemainUnit { set; get; }

        #endregion

        

        public override bool Equals(object obj)
        {
            if(obj == null)
                return false;
            if(obj.GetType() != typeof(DepositHeader) && !(obj is DepositHeader))
                return false;
            return ToString().Equals(obj.ToString());
        }

        public override int GetHashCode()
        {
            return ToString().GetHashCode();
        }

        public override string ToString()
        {
            return string.Format("{0}",DepositHeaderID);
        }

    }


}